// 用于分析人物的alert信息得到报表
package analyzer

import (

)

// ComputeTaskAlerts 待分析的任务对象
type ComputeTaskAlerts struct {
	TaskId 					string
}

// Deal 执行分析处理
func (c *ComputeTaskAlerts) Deal() {

	// TODO: 部分wolagent上线触发式检查，不做分析，仅做alert的记录、整理工作
	// todo: 待具体实现
	//time.Sleep(10 * time.Second)
	//// http post request
	//dataServer := beego.AppConfig.String("server.data_analyzer")
	//dataUrl := fmt.Sprintf("%s/task/alert/deal?%s", dataServer, fmt.Sprintf("task_id=%s", c.TaskId))
	//resp, err := uhttp.HttpPost(dataUrl, "")
	//if err != nil {
	//	errMsg := fmt.Sprintf("task '%s' ComputeTaskAlerts error: %s", c.TaskId, err.Error())
	//	logs.Error(errMsg)
	//	ttItem := &unotify.IMNotifyItem{
	//		TargetType:  unotify.TargetTypeAll,
	//		Grade:       unotify.ErrorGrade,
	//		Title:       unotify.DefaultTitle,
	//		Msg:         errMsg,
	//	}
	//	unotify.IMNotifyInst().SendAsync(ttItem)
	//	return
	//}
	//// json unmarshal
	//tmpMp := make(map[string]interface{})
	//err = json.Unmarshal(resp, &tmpMp)
	//if err != nil {
	//	errMsg := fmt.Sprintf("task '%s' ComputeTaskAlerts error: %s", c.TaskId, err.Error())
	//	logs.Error(errMsg)
	//	ttItem := &unotify.IMNotifyItem{
	//		TargetType:  unotify.TargetTypeAll,
	//		Grade:       unotify.ErrorGrade,
	//		Title:       unotify.DefaultTitle,
	//		Msg:         errMsg,
	//	}
	//	unotify.IMNotifyInst().SendAsync(ttItem)
	//	return
	//}
	//
	//// decode
	//type ResponseJSON struct {
	//	ErrMsg 		string		`json:"err_msg"`
	//	Code 		int			`json:"code"`
	//}
	//responseJSON := new(ResponseJSON)
	//err = uhttp.MapDecode(tmpMp, responseJSON)
	//if err != nil {
	//	errMsg := fmt.Sprintf("task '%s' ComputeTaskAlerts error: %s", c.TaskId, err.Error())
	//	logs.Error(errMsg)
	//	ttItem := &unotify.IMNotifyItem{
	//		TargetType:  unotify.TargetTypeAll,
	//		Grade:       unotify.ErrorGrade,
	//		Title:       unotify.DefaultTitle,
	//		Msg:         errMsg,
	//	}
	//	unotify.IMNotifyInst().SendAsync(ttItem)
	//	return
	//}
	//
	//// 成功
	//var msg string
	//if responseJSON.Code == 1000 {
	//	//msg = fmt.Sprintf("task '%s' alerts: https://xxx.meili-inc.com/weapon/task/report/alert?task_id=%s", c.TaskId, c.TaskId)
	//} else {
	//	msg = fmt.Sprintf("task '%s' ComputeTaskAlerts done: code=%d, msg=%s", c.TaskId, responseJSON.Code, responseJSON.ErrMsg)
	//}
	//logs.Debug(msg)
	//ttItem := &unotify.IMNotifyItem{
	//	TargetType:  unotify.TargetTypeAll,
	//	Grade:       unotify.InfoGrade,
	//	Title:       unotify.DefaultTitle,
	//	Msg:         msg,
	//}
	//unotify.IMNotifyInst().SendAsync(ttItem)
	return
}
